package com.java_foundation.base_demo.test_1;

/**
 * @program: java_foundation
 * @description: 父类
 * 类初始化  clinit
 *      1）静态类变量赋值 j = method()
 *      2）父类的静态代码块
 * 类的实例化方法  init
 *     1）super()(最前)
 *     2）非静态变量赋值 i = test()
 *     3)子类的非静态代码块
 *     4）子类的无参构造（最后）
 *
 * 非静态方法前面其实有一个默认的对象this
 * this在构造器表示正在创建对象，因为这里是在创建子类对象。所以test()执行的
 * 是子类重写的代码（多态）
 *
 * i=test()执行子类的test()
 * @author: xiongbangwen <Email>xiongbangwen@163.com</Email>
 * @create: 2020-05-30 22:32
 **/
public class Father {
    private int i = test();
    private static int j = method();

    static {
        System.out.print("1)");
    }
    Father(){
        System.out.print("2)");
    }
    {
        System.out.print("3)");
    }

    public int test() {
        System.out.print("4)");
        return 1;
    }
    public static int method() {
        System.out.print("5)");
        return 1;
    }


}
